import Axios from 'axios'
Axios.defaults.withCredentials = true
// Axios.defaults.headers.post['Content-Type'] = 'application/json'
 
//1. 创建axios实例,配置基础路径
const axiosapi = Axios.create({
    baseURL:'/api', //服务器
    // baseURL:'http://47.116.66.198:8081/', //服务器
    // baseURL:'http://192.168.1.3:8081/', //本地
    timeout:60000,//连接超时
    withCredentials: true,
    crossDomain: true
});
 
//2. 定义请求拦截器:给所有请求都带上token
axiosapi.interceptors.request.use((req)=>{
    let token = sessionStorage.getItem('token');//获取页面存储的token
    if (token) {
        req.headers['token'] = token;//将token添加至请求头对象的Auth属性中
    }
    return req;
},(error)=>{//返回错误的信息
    return Promise.reject(error);
});
 
//3. 定义响应拦截器: 对服务器响应客户端的数据进行统一处理
axiosapi.interceptors.response.use(res=>{
    //3.1 对响应数据进行处理
    let data = res.data;
    if(res.status === 200 || res.status === 201){
        // console.log(data)
        //请求成功时,将res.data对象返回给响应对象
        return data;
    } else {
        return Promise.reject(data);
    }
},(error)=>{
    return Promise.reject(error);
})
 
//4. 导出axios实例,供组件异步请求使用
// export default axiosapi;

export const apiRequest = (vm,url,param,succFun,type='post') => {
    vm.$toast.loading({
        message: '加载中...',
        forbidClick: true,
        duration: 60000
    })
    if(type == 'get'){
        axiosapi.get('/health-api/api/' + url, {params:param}).then(resData => {
            vm.$toast.clear();
            if (resData.code === 10021) {
                vm.$router.push('/login')
            }else if(resData.code !== 0){
                vm.$toast({
                    message: resData.msg,
                    duration: 3000
                })
            }else{
                succFun(resData.data)
            }
        }).catch(err => {
            console.log('error：' + err)
        })
    }else{
        axiosapi[type]('/health-api/api/' + url, param).then(resData => {
            vm.$toast.clear();
            if (resData.code === 10021) {
                vm.$router.push('/login')
            }else if(resData.code !== 0){
                vm.$toast({
                    message: resData.msg,
                    duration: 3000
                })
            }else{
                succFun(resData.data)
            }
        }).catch(err => {
            console.log('error：' + err)
        })
    }

}

// apiRequest(this, 'hmcustomer', param, resData => {
//     // 返回成功要做的事
// }, 'put')